<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>CastPlayer (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="CastPlayer (ExoPlayer library)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":42,"i1":42,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":42,"i48":42,"i49":42,"i50":10,"i51":10,"i52":10,"i53":42,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.ext.cast</a></div>
<h2 title="Class CastPlayer" class="title">Class CastPlayer</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../BasePlayer.html" title="class in com.google.android.exoplayer2">com.google.android.exoplayer2.BasePlayer</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.ext.cast.CastPlayer</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
</dl>
<hr>
<pre>public final class <span class="typeNameLabel">CastPlayer</span>
extends <a href="../../BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></pre>
<div class="block"><a href="../../Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> implementation that communicates with a Cast receiver app.

 <p>The behavior of this class depends on the underlying Cast session, which is obtained from the
 injected <code>CastContext</code>. To keep track of the session, <a href="#isCastSessionAvailable()"><code>isCastSessionAvailable()</code></a> can
 be queried and <a href="SessionAvailabilityListener.html" title="interface in com.google.android.exoplayer2.ext.cast"><code>SessionAvailabilityListener</code></a> can be implemented and attached to the player.

 <p>If no session is available, the player state will remain unchanged and calls to methods that
 alter it will be ignored. Querying the player state is possible even when no session is
 available, in which case, the last observed receiver app state is reported.

 <p>Methods should be called on the application's main thread.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.com.google.android.exoplayer2.Player">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;com.google.android.exoplayer2.<a href="../../Player.html" title="interface in com.google.android.exoplayer2">Player</a></h3>
<code><a href="../../Player.Command.html" title="annotation in com.google.android.exoplayer2">Player.Command</a>, <a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a>, <a href="../../Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">Player.DiscontinuityReason</a>, <a href="../../Player.EventFlags.html" title="annotation in com.google.android.exoplayer2">Player.EventFlags</a>, <a href="../../Player.EventListener.html" title="interface in com.google.android.exoplayer2">Player.EventListener</a>, <a href="../../Player.Events.html" title="class in com.google.android.exoplayer2">Player.Events</a>, <a href="../../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>, <a href="../../Player.MediaItemTransitionReason.html" title="annotation in com.google.android.exoplayer2">Player.MediaItemTransitionReason</a>, <a href="../../Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">Player.PlaybackSuppressionReason</a>, <a href="../../Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.PlayWhenReadyChangeReason</a>, <a href="../../Player.PositionInfo.html" title="class in com.google.android.exoplayer2">Player.PositionInfo</a>, <a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">Player.RepeatMode</a>, <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2">Player.State</a>, <a href="../../Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.TimelineChangeReason</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.BasePlayer">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;com.google.android.exoplayer2.<a href="../../BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></h3>
<code><a href="../../BasePlayer.html#window">window</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.Player">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="../../Player.html" title="interface in com.google.android.exoplayer2">Player</a></h3>
<code><a href="../../Player.html#COMMAND_ADJUST_DEVICE_VOLUME">COMMAND_ADJUST_DEVICE_VOLUME</a>, <a href="../../Player.html#COMMAND_CHANGE_MEDIA_ITEMS">COMMAND_CHANGE_MEDIA_ITEMS</a>, <a href="../../Player.html#COMMAND_GET_AUDIO_ATTRIBUTES">COMMAND_GET_AUDIO_ATTRIBUTES</a>, <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM">COMMAND_GET_CURRENT_MEDIA_ITEM</a>, <a href="../../Player.html#COMMAND_GET_DEVICE_VOLUME">COMMAND_GET_DEVICE_VOLUME</a>, <a href="../../Player.html#COMMAND_GET_MEDIA_ITEMS">COMMAND_GET_MEDIA_ITEMS</a>, <a href="../../Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA">COMMAND_GET_MEDIA_ITEMS_METADATA</a>, <a href="../../Player.html#COMMAND_GET_TEXT">COMMAND_GET_TEXT</a>, <a href="../../Player.html#COMMAND_GET_VOLUME">COMMAND_GET_VOLUME</a>, <a href="../../Player.html#COMMAND_PLAY_PAUSE">COMMAND_PLAY_PAUSE</a>, <a href="../../Player.html#COMMAND_PREPARE_STOP">COMMAND_PREPARE_STOP</a>, <a href="../../Player.html#COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM">COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM</a>, <a href="../../Player.html#COMMAND_SEEK_TO_DEFAULT_POSITION">COMMAND_SEEK_TO_DEFAULT_POSITION</a>, <a href="../../Player.html#COMMAND_SEEK_TO_MEDIA_ITEM">COMMAND_SEEK_TO_MEDIA_ITEM</a>, <a href="../../Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM">COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</a>, <a href="../../Player.html#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM">COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM</a>, <a href="../../Player.html#COMMAND_SET_DEVICE_VOLUME">COMMAND_SET_DEVICE_VOLUME</a>, <a href="../../Player.html#COMMAND_SET_REPEAT_MODE">COMMAND_SET_REPEAT_MODE</a>, <a href="../../Player.html#COMMAND_SET_SHUFFLE_MODE">COMMAND_SET_SHUFFLE_MODE</a>, <a href="../../Player.html#COMMAND_SET_SPEED_AND_PITCH">COMMAND_SET_SPEED_AND_PITCH</a>, <a href="../../Player.html#COMMAND_SET_VIDEO_SURFACE">COMMAND_SET_VIDEO_SURFACE</a>, <a href="../../Player.html#COMMAND_SET_VOLUME">COMMAND_SET_VOLUME</a>, <a href="../../Player.html#DISCONTINUITY_REASON_AUTO_TRANSITION">DISCONTINUITY_REASON_AUTO_TRANSITION</a>, <a href="../../Player.html#DISCONTINUITY_REASON_INTERNAL">DISCONTINUITY_REASON_INTERNAL</a>, <a href="../../Player.html#DISCONTINUITY_REASON_REMOVE">DISCONTINUITY_REASON_REMOVE</a>, <a href="../../Player.html#DISCONTINUITY_REASON_SEEK">DISCONTINUITY_REASON_SEEK</a>, <a href="../../Player.html#DISCONTINUITY_REASON_SEEK_ADJUSTMENT">DISCONTINUITY_REASON_SEEK_ADJUSTMENT</a>, <a href="../../Player.html#DISCONTINUITY_REASON_SKIP">DISCONTINUITY_REASON_SKIP</a>, <a href="../../Player.html#EVENT_AVAILABLE_COMMANDS_CHANGED">EVENT_AVAILABLE_COMMANDS_CHANGED</a>, <a href="../../Player.html#EVENT_IS_LOADING_CHANGED">EVENT_IS_LOADING_CHANGED</a>, <a href="../../Player.html#EVENT_IS_PLAYING_CHANGED">EVENT_IS_PLAYING_CHANGED</a>, <a href="../../Player.html#EVENT_MEDIA_ITEM_TRANSITION">EVENT_MEDIA_ITEM_TRANSITION</a>, <a href="../../Player.html#EVENT_MEDIA_METADATA_CHANGED">EVENT_MEDIA_METADATA_CHANGED</a>, <a href="../../Player.html#EVENT_PLAY_WHEN_READY_CHANGED">EVENT_PLAY_WHEN_READY_CHANGED</a>, <a href="../../Player.html#EVENT_PLAYBACK_PARAMETERS_CHANGED">EVENT_PLAYBACK_PARAMETERS_CHANGED</a>, <a href="../../Player.html#EVENT_PLAYBACK_STATE_CHANGED">EVENT_PLAYBACK_STATE_CHANGED</a>, <a href="../../Player.html#EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED">EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED</a>, <a href="../../Player.html#EVENT_PLAYER_ERROR">EVENT_PLAYER_ERROR</a>, <a href="../../Player.html#EVENT_POSITION_DISCONTINUITY">EVENT_POSITION_DISCONTINUITY</a>, <a href="../../Player.html#EVENT_REPEAT_MODE_CHANGED">EVENT_REPEAT_MODE_CHANGED</a>, <a href="../../Player.html#EVENT_SHUFFLE_MODE_ENABLED_CHANGED">EVENT_SHUFFLE_MODE_ENABLED_CHANGED</a>, <a href="../../Player.html#EVENT_STATIC_METADATA_CHANGED">EVENT_STATIC_METADATA_CHANGED</a>, <a href="../../Player.html#EVENT_TIMELINE_CHANGED">EVENT_TIMELINE_CHANGED</a>, <a href="../../Player.html#EVENT_TRACKS_CHANGED">EVENT_TRACKS_CHANGED</a>, <a href="../../Player.html#MEDIA_ITEM_TRANSITION_REASON_AUTO">MEDIA_ITEM_TRANSITION_REASON_AUTO</a>, <a href="../../Player.html#MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED">MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED</a>, <a href="../../Player.html#MEDIA_ITEM_TRANSITION_REASON_REPEAT">MEDIA_ITEM_TRANSITION_REASON_REPEAT</a>, <a href="../../Player.html#MEDIA_ITEM_TRANSITION_REASON_SEEK">MEDIA_ITEM_TRANSITION_REASON_SEEK</a>, <a href="../../Player.html#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY">PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY</a>, <a href="../../Player.html#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS">PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS</a>, <a href="../../Player.html#PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM">PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM</a>, <a href="../../Player.html#PLAY_WHEN_READY_CHANGE_REASON_REMOTE">PLAY_WHEN_READY_CHANGE_REASON_REMOTE</a>, <a href="../../Player.html#PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST">PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST</a>, <a href="../../Player.html#PLAYBACK_SUPPRESSION_REASON_NONE">PLAYBACK_SUPPRESSION_REASON_NONE</a>, <a href="../../Player.html#PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS">PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS</a>, <a href="../../Player.html#REPEAT_MODE_ALL">REPEAT_MODE_ALL</a>, <a href="../../Player.html#REPEAT_MODE_OFF">REPEAT_MODE_OFF</a>, <a href="../../Player.html#REPEAT_MODE_ONE">REPEAT_MODE_ONE</a>, <a href="../../Player.html#STATE_BUFFERING">STATE_BUFFERING</a>, <a href="../../Player.html#STATE_ENDED">STATE_ENDED</a>, <a href="../../Player.html#STATE_IDLE">STATE_IDLE</a>, <a href="../../Player.html#STATE_READY">STATE_READY</a>, <a href="../../Player.html#TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED">TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED</a>, <a href="../../Player.html#TIMELINE_CHANGE_REASON_SOURCE_UPDATE">TIMELINE_CHANGE_REASON_SOURCE_UPDATE</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(com.google.android.gms.cast.framework.CastContext)">CastPlayer</a></span>&#8203;(com.google.android.gms.cast.framework.CastContext&nbsp;castContext)</code></th>
<td class="colLast">
<div class="block">Creates a new cast player that uses a <a href="DefaultMediaItemConverter.html" title="class in com.google.android.exoplayer2.ext.cast"><code>DefaultMediaItemConverter</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(com.google.android.gms.cast.framework.CastContext,com.google.android.exoplayer2.ext.cast.MediaItemConverter)">CastPlayer</a></span>&#8203;(com.google.android.gms.cast.framework.CastContext&nbsp;castContext,
          <a href="MediaItemConverter.html" title="interface in com.google.android.exoplayer2.ext.cast">MediaItemConverter</a>&nbsp;mediaItemConverter)</code></th>
<td class="colLast">
<div class="block">Creates a new cast player.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addItems(int,com.google.android.gms.cast.MediaQueueItem...)">addItems</a></span>&#8203;(int&nbsp;periodId,
        com.google.android.gms.cast.MediaQueueItem...&nbsp;items)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#addMediaItems(int,java.util.List)"><code>addMediaItems(int, List)</code></a> instead.</div>
</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addItems(com.google.android.gms.cast.MediaQueueItem...)">addItems</a></span>&#8203;(com.google.android.gms.cast.MediaQueueItem...&nbsp;items)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../../BasePlayer.html#addMediaItems(java.util.List)"><code>BasePlayer.addMediaItems(List)</code></a> instead.</div>
</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addListener(com.google.android.exoplayer2.Player.EventListener)">addListener</a></span>&#8203;(<a href="../../Player.EventListener.html" title="interface in com.google.android.exoplayer2">Player.EventListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Registers a listener to receive events from the player.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addListener(com.google.android.exoplayer2.Player.Listener)">addListener</a></span>&#8203;(<a href="../../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Registers a listener to receive all events from the player.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMediaItems(int,java.util.List)">addMediaItems</a></span>&#8203;(int&nbsp;index,
             <a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems)</code></th>
<td class="colLast">
<div class="block">Adds a list of media items at the given index of the playlist.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearVideoSurface()">clearVideoSurface</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearVideoSurface(android.view.Surface)">clearVideoSurface</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;surface)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearVideoSurfaceHolder(android.view.SurfaceHolder)">clearVideoSurfaceHolder</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceHolder</a>&nbsp;surfaceHolder)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearVideoSurfaceView(android.view.SurfaceView)">clearVideoSurfaceView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceView</a>&nbsp;surfaceView)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearVideoTextureView(android.view.TextureView)">clearVideoTextureView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top">TextureView</a>&nbsp;textureView)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decreaseDeviceVolume()">decreaseDeviceVolume</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getApplicationLooper()">getApplicationLooper</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the application thread that's used to access the
 player and on which player events are received.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAudioAttributes()">getAudioAttributes</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and returns <a href="../../audio/AudioAttributes.html#DEFAULT"><code>AudioAttributes.DEFAULT</code></a>.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAvailableCommands()">getAvailableCommands</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the player's currently available <a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBufferedPosition()">getBufferedPosition</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an estimate of the position in the current content window or ad up to which data is
 buffered, in milliseconds.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContentBufferedPosition()">getContentBufferedPosition</a></span>()</code></th>
<td class="colLast">
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns an estimate of the content position in
 the current content window up to which data is buffered, in milliseconds.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContentPosition()">getContentPosition</a></span>()</code></th>
<td class="colLast">
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns the content position that will be
 played once all ads in the ad group have finished playing, in milliseconds.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentAdGroupIndex()">getCurrentAdGroupIndex</a></span>()</code></th>
<td class="colLast">
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad group in the period
 currently being played.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentAdIndexInAdGroup()">getCurrentAdIndexInAdGroup</a></span>()</code></th>
<td class="colLast">
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad in its ad group.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="../../text/Cue.html" title="class in com.google.android.exoplayer2.text">Cue</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentCues()">getCurrentCues</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and returns an empty list.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentPeriodIndex()">getCurrentPeriodIndex</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the index of the period currently being played.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentPosition()">getCurrentPosition</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the playback position in the current content window or ad, in milliseconds, or the
 prospective position in milliseconds if the <a href="../../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is
 empty.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="../../metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentStaticMetadata()">getCurrentStaticMetadata</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current static metadata for the track selections.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentTimeline()">getCurrentTimeline</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current <a href="../../Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentTrackGroups()">getCurrentTrackGroups</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the available track groups.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../../trackselection/TrackSelectionArray.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionArray</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentTrackSelections()">getCurrentTrackSelections</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current track selections.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentWindowIndex()">getCurrentWindowIndex</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the index of the current <a href="../../Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>window</code></a> in the <a href="../../Player.html#getCurrentTimeline()"><code>timeline</code></a>, or the prospective window index if the <a href="../../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is empty.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../device/DeviceInfo.html" title="class in com.google.android.exoplayer2.device">DeviceInfo</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeviceInfo()">getDeviceInfo</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and always returns <a href="../../device/DeviceInfo.html#UNKNOWN"><code>DeviceInfo.UNKNOWN</code></a>.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeviceVolume()">getDeviceVolume</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and always returns <code>0</code>.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDuration()">getDuration</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the duration of the current content window or ad in milliseconds, or <a href="../../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if the duration is not known.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>com.google.android.gms.cast.MediaQueueItem</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getItem(int)">getItem</a></span>&#8203;(int&nbsp;periodId)</code></th>
<td class="colLast">
<div class="block">Returns the item that corresponds to the period with the given id, or null if no media queue or
 period with id <code>periodId</code> exist.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaMetadata()">getMediaMetadata</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current combined <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>, or <a href="../../MediaMetadata.html#EMPTY"><code>MediaMetadata.EMPTY</code></a> if not
 supported.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlaybackParameters()">getPlaybackParameters</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the currently active playback parameters.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlaybackState()">getPlaybackState</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a> of the player.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlaybackSuppressionReason()">getPlaybackSuppressionReason</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the reason why playback is suppressed even though <a href="../../Player.html#getPlayWhenReady()"><code>Player.getPlayWhenReady()</code></a> is <code>
 true</code>, or <a href="../../Player.html#PLAYBACK_SUPPRESSION_REASON_NONE"><code>Player.PLAYBACK_SUPPRESSION_REASON_NONE</code></a> if playback is not suppressed.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="../../ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlayerError()">getPlayerError</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the error that caused playback to fail.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlayWhenReady()">getPlayWhenReady</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether playback will proceed when <a href="../../Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> == <a href="../../Player.html#STATE_READY"><code>Player.STATE_READY</code></a>.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRepeatMode()">getRepeatMode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current <a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> used for playback.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getShuffleModeEnabled()">getShuffleModeEnabled</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether shuffling of windows is enabled.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTotalBufferedDuration()">getTotalBufferedDuration</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an estimate of the total buffered duration from the current position, in milliseconds.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="../../video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoSize()">getVideoSize</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and returns <a href="../../video/VideoSize.html#UNKNOWN"><code>VideoSize.UNKNOWN</code></a>.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVolume()">getVolume</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and returns 1.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#increaseDeviceVolume()">increaseDeviceVolume</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCastSessionAvailable()">isCastSessionAvailable</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether a cast session is available.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDeviceMuted()">isDeviceMuted</a></span>()</code></th>
<td class="colLast">
<div class="block">This method is not supported and always returns <code>false</code>.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLoading()">isLoading</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether the player is currently loading the source.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPlayingAd()">isPlayingAd</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the player is currently playing an ad.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#loadItem(com.google.android.gms.cast.MediaQueueItem,long)">loadItem</a></span>&#8203;(com.google.android.gms.cast.MediaQueueItem&nbsp;item,
        long&nbsp;positionMs)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setMediaItems(java.util.List,int,long)"><code>setMediaItems(List, int, long)</code></a> instead.</div>
</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#loadItems(com.google.android.gms.cast.MediaQueueItem%5B%5D,int,long,int)">loadItems</a></span>&#8203;(com.google.android.gms.cast.MediaQueueItem[]&nbsp;items,
         int&nbsp;startIndex,
         long&nbsp;positionMs,
         int&nbsp;repeatMode)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setMediaItems(java.util.List,int,long)"><code>setMediaItems(List, int, long)</code></a> and <a href="#setRepeatMode(int)"><code>setRepeatMode(int)</code></a>
     instead.</div>
</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveItem(int,int)">moveItem</a></span>&#8203;(int&nbsp;periodId,
        int&nbsp;newIndex)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../../BasePlayer.html#moveMediaItem(int,int)"><code>BasePlayer.moveMediaItem(int, int)</code></a> instead.</div>
</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveMediaItems(int,int,int)">moveMediaItems</a></span>&#8203;(int&nbsp;fromIndex,
              int&nbsp;toIndex,
              int&nbsp;newIndex)</code></th>
<td class="colLast">
<div class="block">Moves the media item range to the new index.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepare()">prepare</a></span>()</code></th>
<td class="colLast">
<div class="block">Prepares the player.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
<div class="block">Releases the player.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeItem(int)">removeItem</a></span>&#8203;(int&nbsp;periodId)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../../BasePlayer.html#removeMediaItem(int)"><code>BasePlayer.removeMediaItem(int)</code></a> instead.</div>
</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeListener(com.google.android.exoplayer2.Player.EventListener)">removeListener</a></span>&#8203;(<a href="../../Player.EventListener.html" title="interface in com.google.android.exoplayer2">Player.EventListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Unregister a listener registered through <a href="../../Player.html#addListener(com.google.android.exoplayer2.Player.EventListener)"><code>Player.addListener(EventListener)</code></a>.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeListener(com.google.android.exoplayer2.Player.Listener)">removeListener</a></span>&#8203;(<a href="../../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Unregister a listener registered through <a href="../../Player.html#addListener(com.google.android.exoplayer2.Player.Listener)"><code>Player.addListener(Listener)</code></a>.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMediaItems(int,int)">removeMediaItems</a></span>&#8203;(int&nbsp;fromIndex,
                int&nbsp;toIndex)</code></th>
<td class="colLast">
<div class="block">Removes a range of media items from the playlist.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long)">seekTo</a></span>&#8203;(int&nbsp;windowIndex,
      long&nbsp;positionMs)</code></th>
<td class="colLast">
<div class="block">Seeks to a position specified in milliseconds in the specified window.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceMuted(boolean)">setDeviceMuted</a></span>&#8203;(boolean&nbsp;muted)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceVolume(int)">setDeviceVolume</a></span>&#8203;(int&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,boolean)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
             boolean&nbsp;resetPosition)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,int,long)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
             int&nbsp;startWindowIndex,
             long&nbsp;startPositionMs)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></span>&#8203;(<a href="../../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Attempts to set the playback parameters.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayWhenReady(boolean)">setPlayWhenReady</a></span>&#8203;(boolean&nbsp;playWhenReady)</code></th>
<td class="colLast">
<div class="block">Sets whether playback should proceed when <a href="../../Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> == <a href="../../Player.html#STATE_READY"><code>Player.STATE_READY</code></a>.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRepeatMode(int)">setRepeatMode</a></span>&#8203;(int&nbsp;repeatMode)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSessionAvailabilityListener(com.google.android.exoplayer2.ext.cast.SessionAvailabilityListener)">setSessionAvailabilityListener</a></span>&#8203;(<a href="SessionAvailabilityListener.html" title="interface in com.google.android.exoplayer2.ext.cast">SessionAvailabilityListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Sets a listener for updates on the cast session availability.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setShuffleModeEnabled(boolean)">setShuffleModeEnabled</a></span>&#8203;(boolean&nbsp;shuffleModeEnabled)</code></th>
<td class="colLast">
<div class="block">Sets whether shuffling of windows is enabled.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurface(android.view.Surface)">setVideoSurface</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;surface)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurfaceHolder(android.view.SurfaceHolder)">setVideoSurfaceHolder</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceHolder</a>&nbsp;surfaceHolder)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurfaceView(android.view.SurfaceView)">setVideoSurfaceView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceView</a>&nbsp;surfaceView)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoTextureView(android.view.TextureView)">setVideoTextureView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top">TextureView</a>&nbsp;textureView)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVolume(float)">setVolume</a></span>&#8203;(float&nbsp;audioVolume)</code></th>
<td class="colLast">
<div class="block">This method is not supported and does nothing.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop(boolean)">stop</a></span>&#8203;(boolean&nbsp;reset)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.android.exoplayer2.BasePlayer">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../../BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></h3>
<code><a href="../../BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../../BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../../BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="../../BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="../../BasePlayer.html#getAvailableCommands(com.google.android.exoplayer2.Player.Commands)">getAvailableCommands</a>, <a href="../../BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="../../BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="../../BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="../../BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="../../BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="../../BasePlayer.html#getCurrentTag()">getCurrentTag</a>, <a href="../../BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="../../BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="../../BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="../../BasePlayer.html#getPlaybackError()">getPlaybackError</a>, <a href="../../BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="../../BasePlayer.html#hasNext()">hasNext</a>, <a href="../../BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="../../BasePlayer.html#isCommandAvailable(int)">isCommandAvailable</a>, <a href="../../BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="../../BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="../../BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="../../BasePlayer.html#isPlaying()">isPlaying</a>, <a href="../../BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="../../BasePlayer.html#next()">next</a>, <a href="../../BasePlayer.html#pause()">pause</a>, <a href="../../BasePlayer.html#play()">play</a>, <a href="../../BasePlayer.html#previous()">previous</a>, <a href="../../BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="../../BasePlayer.html#seekTo(long)">seekTo</a>, <a href="../../BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="../../BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="../../BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a>, <a href="../../BasePlayer.html#stop()">stop</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(com.google.android.gms.cast.framework.CastContext)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CastPlayer</h4>
<pre>public&nbsp;CastPlayer&#8203;(com.google.android.gms.cast.framework.CastContext&nbsp;castContext)</pre>
<div class="block">Creates a new cast player that uses a <a href="DefaultMediaItemConverter.html" title="class in com.google.android.exoplayer2.ext.cast"><code>DefaultMediaItemConverter</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>castContext</code> - The context from which the cast session is obtained.</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(com.google.android.gms.cast.framework.CastContext,com.google.android.exoplayer2.ext.cast.MediaItemConverter)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CastPlayer</h4>
<pre>public&nbsp;CastPlayer&#8203;(com.google.android.gms.cast.framework.CastContext&nbsp;castContext,
                  <a href="MediaItemConverter.html" title="interface in com.google.android.exoplayer2.ext.cast">MediaItemConverter</a>&nbsp;mediaItemConverter)</pre>
<div class="block">Creates a new cast player.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>castContext</code> - The context from which the cast session is obtained.</dd>
<dd><code>mediaItemConverter</code> - The <a href="MediaItemConverter.html" title="interface in com.google.android.exoplayer2.ext.cast"><code>MediaItemConverter</code></a> to use.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="loadItem(com.google.android.gms.cast.MediaQueueItem,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadItem</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
@Nullable
public&nbsp;com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;&nbsp;loadItem&#8203;(com.google.android.gms.cast.MediaQueueItem&nbsp;item,
                                                                                                                                                  long&nbsp;positionMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setMediaItems(java.util.List,int,long)"><code>setMediaItems(List, int, long)</code></a> instead.</div>
</div>
</li>
</ul>
<a id="loadItems(com.google.android.gms.cast.MediaQueueItem[],int,long,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadItems</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
@Nullable
public&nbsp;com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;&nbsp;loadItems&#8203;(com.google.android.gms.cast.MediaQueueItem[]&nbsp;items,
                                                                                                                                                   int&nbsp;startIndex,
                                                                                                                                                   long&nbsp;positionMs,
                                                                                                                                                   <a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">@RepeatMode</a>
                                                                                                                                                   int&nbsp;repeatMode)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setMediaItems(java.util.List,int,long)"><code>setMediaItems(List, int, long)</code></a> and <a href="#setRepeatMode(int)"><code>setRepeatMode(int)</code></a>
     instead.</div>
</div>
</li>
</ul>
<a id="addItems(com.google.android.gms.cast.MediaQueueItem...)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addItems</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
@Nullable
public&nbsp;com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;&nbsp;addItems&#8203;(com.google.android.gms.cast.MediaQueueItem...&nbsp;items)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../../BasePlayer.html#addMediaItems(java.util.List)"><code>BasePlayer.addMediaItems(List)</code></a> instead.</div>
</div>
</li>
</ul>
<a id="addItems(int,com.google.android.gms.cast.MediaQueueItem...)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addItems</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
@Nullable
public&nbsp;com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;&nbsp;addItems&#8203;(int&nbsp;periodId,
                                                                                                                                                  com.google.android.gms.cast.MediaQueueItem...&nbsp;items)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#addMediaItems(int,java.util.List)"><code>addMediaItems(int, List)</code></a> instead.</div>
</div>
</li>
</ul>
<a id="removeItem(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeItem</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
@Nullable
public&nbsp;com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;&nbsp;removeItem&#8203;(int&nbsp;periodId)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../../BasePlayer.html#removeMediaItem(int)"><code>BasePlayer.removeMediaItem(int)</code></a> instead.</div>
</div>
</li>
</ul>
<a id="moveItem(int,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>moveItem</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
@Nullable
public&nbsp;com.google.android.gms.common.api.PendingResult&lt;com.google.android.gms.cast.framework.media.RemoteMediaClient.MediaChannelResult&gt;&nbsp;moveItem&#8203;(int&nbsp;periodId,
                                                                                                                                                  int&nbsp;newIndex)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../../BasePlayer.html#moveMediaItem(int,int)"><code>BasePlayer.moveMediaItem(int, int)</code></a> instead.</div>
</div>
</li>
</ul>
<a id="getItem(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getItem</h4>
<pre class="methodSignature">@Nullable
public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&nbsp;periodId)</pre>
<div class="block">Returns the item that corresponds to the period with the given id, or null if no media queue or
 period with id <code>periodId</code> exist.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>periodId</code> - The id of the period (<a href="#getCurrentTimeline()"><code>getCurrentTimeline()</code></a>) that corresponds to the item
     to get.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The item that corresponds to the period with the given id, or null if no media queue or
     period with id <code>periodId</code> exist.</dd>
</dl>
</li>
</ul>
<a id="isCastSessionAvailable()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCastSessionAvailable</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isCastSessionAvailable()</pre>
<div class="block">Returns whether a cast session is available.</div>
</li>
</ul>
<a id="setSessionAvailabilityListener(com.google.android.exoplayer2.ext.cast.SessionAvailabilityListener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSessionAvailabilityListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setSessionAvailabilityListener&#8203;(@Nullable
                                           <a href="SessionAvailabilityListener.html" title="interface in com.google.android.exoplayer2.ext.cast">SessionAvailabilityListener</a>&nbsp;listener)</pre>
<div class="block">Sets a listener for updates on the cast session availability.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The <a href="SessionAvailabilityListener.html" title="interface in com.google.android.exoplayer2.ext.cast"><code>SessionAvailabilityListener</code></a>, or null to clear the listener.</dd>
</dl>
</li>
</ul>
<a id="getApplicationLooper()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getApplicationLooper</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;getApplicationLooper()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getApplicationLooper()">Player</a></code></span></div>
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the application thread that's used to access the
 player and on which player events are received.</div>
</li>
</ul>
<a id="addListener(com.google.android.exoplayer2.Player.Listener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addListener&#8203;(<a href="../../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#addListener(com.google.android.exoplayer2.Player.Listener)">Player</a></code></span></div>
<div class="block">Registers a listener to receive all events from the player.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to register.</dd>
</dl>
</li>
</ul>
<a id="addListener(com.google.android.exoplayer2.Player.EventListener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addListener&#8203;(<a href="../../Player.EventListener.html" title="interface in com.google.android.exoplayer2">Player.EventListener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#addListener(com.google.android.exoplayer2.Player.EventListener)">Player</a></code></span></div>
<div class="block">Registers a listener to receive events from the player. The listener's methods will be called
 on the thread that was used to construct the player. However, if the thread used to construct
 the player does not have a <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a>, then the listener will be called on the main thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to register.</dd>
</dl>
</li>
</ul>
<a id="removeListener(com.google.android.exoplayer2.Player.Listener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeListener&#8203;(<a href="../../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#removeListener(com.google.android.exoplayer2.Player.Listener)">Player</a></code></span></div>
<div class="block">Unregister a listener registered through <a href="../../Player.html#addListener(com.google.android.exoplayer2.Player.Listener)"><code>Player.addListener(Listener)</code></a>. The listener will no
 longer receive events.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to unregister.</dd>
</dl>
</li>
</ul>
<a id="removeListener(com.google.android.exoplayer2.Player.EventListener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeListener&#8203;(<a href="../../Player.EventListener.html" title="interface in com.google.android.exoplayer2">Player.EventListener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#removeListener(com.google.android.exoplayer2.Player.EventListener)">Player</a></code></span></div>
<div class="block">Unregister a listener registered through <a href="../../Player.html#addListener(com.google.android.exoplayer2.Player.EventListener)"><code>Player.addListener(EventListener)</code></a>. The listener will
 no longer receive events from the player.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to unregister.</dd>
</dl>
</li>
</ul>
<a id="setMediaItems(java.util.List,boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaItems</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaItems&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
                          boolean&nbsp;resetPosition)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setMediaItems(java.util.List,boolean)">Player</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>resetPosition</code> - Whether the playback position should be reset to the default position in
     the first <a href="../../Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>Timeline.Window</code></a>. If false, playback will start from the position defined
     by <a href="../../Player.html#getCurrentWindowIndex()"><code>Player.getCurrentWindowIndex()</code></a> and <a href="../../Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</dd>
</dl>
</li>
</ul>
<a id="setMediaItems(java.util.List,int,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaItems</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaItems&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
                          int&nbsp;startWindowIndex,
                          long&nbsp;startPositionMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setMediaItems(java.util.List,int,long)">Player</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>startWindowIndex</code> - The window index to start playback from. If <a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> is
     passed, the current position is not reset.</dd>
<dd><code>startPositionMs</code> - The position in milliseconds to start playback from. If <a href="../../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> is passed, the default position of the given window is used. In any case, if
     <code>startWindowIndex</code> is set to <a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a>, this parameter is ignored and the
     position is not reset at all.</dd>
</dl>
</li>
</ul>
<a id="addMediaItems(int,java.util.List)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMediaItems</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addMediaItems&#8203;(int&nbsp;index,
                          <a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#addMediaItems(int,java.util.List)">Player</a></code></span></div>
<div class="block">Adds a list of media items at the given index of the playlist.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index at which to add the media items. If the index is larger than the size of
     the playlist, the media items are added to the end of the playlist.</dd>
<dd><code>mediaItems</code> - The <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a> to add.</dd>
</dl>
</li>
</ul>
<a id="moveMediaItems(int,int,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>moveMediaItems</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;moveMediaItems&#8203;(int&nbsp;fromIndex,
                           int&nbsp;toIndex,
                           int&nbsp;newIndex)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#moveMediaItems(int,int,int)">Player</a></code></span></div>
<div class="block">Moves the media item range to the new index.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The start of the range to move.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive).</dd>
<dd><code>newIndex</code> - The new index of the first media item of the range. If the new index is larger
     than the size of the remaining playlist after removing the range, the range is moved to the
     end of the playlist.</dd>
</dl>
</li>
</ul>
<a id="removeMediaItems(int,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeMediaItems</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeMediaItems&#8203;(int&nbsp;fromIndex,
                             int&nbsp;toIndex)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#removeMediaItems(int,int)">Player</a></code></span></div>
<div class="block">Removes a range of media items from the playlist.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The index at which to start removing media items.</dd>
<dd><code>toIndex</code> - The index of the first item to be kept (exclusive). If the index is larger than
     the size of the playlist, media items to the end of the playlist are removed.</dd>
</dl>
</li>
</ul>
<a id="getAvailableCommands()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAvailableCommands</h4>
<pre class="methodSignature">public&nbsp;<a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a>&nbsp;getAvailableCommands()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getAvailableCommands()">Player</a></code></span></div>
<div class="block">Returns the player's currently available <a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.

 <p>The returned <a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a> are not updated when available commands change. Use <a href="../../Player.Listener.html#onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)"><code>Player.Listener.onAvailableCommandsChanged(Commands)</code></a> to get an update when the available commands
 change.

 <p>Executing a command that is not available (for example, calling <a href="../../Player.html#next()"><code>Player.next()</code></a> if <a href="../../Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a> is unavailable) will neither throw an exception nor generate
 a <a href="../../Player.html#getPlayerError()"><code>Player.getPlayerError()</code></a> player error}.

 <p><a href="../../Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a> and <a href="../../Player.html#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM</code></a>
 are unavailable if there is no such <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The currently available <a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)"><code>Player.Listener.onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)</code></a></dd>
</dl>
</li>
</ul>
<a id="prepare()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepare</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;prepare()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#prepare()">Player</a></code></span></div>
<div class="block">Prepares the player.</div>
</li>
</ul>
<a id="getPlaybackState()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlaybackState</h4>
<pre class="methodSignature"><a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2">@State</a>
public&nbsp;int&nbsp;getPlaybackState()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getPlaybackState()">Player</a></code></span></div>
<div class="block">Returns the current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a> of the player.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onPlaybackStateChanged(int)"><code>Player.Listener.onPlaybackStateChanged(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="getPlaybackSuppressionReason()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlaybackSuppressionReason</h4>
<pre class="methodSignature"><a href="../../Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">@PlaybackSuppressionReason</a>
public&nbsp;int&nbsp;getPlaybackSuppressionReason()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getPlaybackSuppressionReason()">Player</a></code></span></div>
<div class="block">Returns the reason why playback is suppressed even though <a href="../../Player.html#getPlayWhenReady()"><code>Player.getPlayWhenReady()</code></a> is <code>
 true</code>, or <a href="../../Player.html#PLAYBACK_SUPPRESSION_REASON_NONE"><code>Player.PLAYBACK_SUPPRESSION_REASON_NONE</code></a> if playback is not suppressed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="../../Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>playback suppression reason</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onPlaybackSuppressionReasonChanged(int)"><code>Player.Listener.onPlaybackSuppressionReasonChanged(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="getPlayerError()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlayerError</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="../../ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a>&nbsp;getPlayerError()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getPlayerError()">Player</a></code></span></div>
<div class="block">Returns the error that caused playback to fail. This is the same error that will have been
 reported via <a href="../../Player.Listener.html#onPlayerError(com.google.android.exoplayer2.ExoPlaybackException)"><code>Player.Listener.onPlayerError(ExoPlaybackException)</code></a> at the time of failure. It
 can be queried using this method until the player is re-prepared.

 <p>Note that this method will always return <code>null</code> if <a href="../../Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> is not
 <a href="../../Player.html#STATE_IDLE"><code>Player.STATE_IDLE</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The error, or <code>null</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onPlayerError(com.google.android.exoplayer2.ExoPlaybackException)"><code>Player.Listener.onPlayerError(ExoPlaybackException)</code></a></dd>
</dl>
</li>
</ul>
<a id="setPlayWhenReady(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlayWhenReady</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setPlayWhenReady&#8203;(boolean&nbsp;playWhenReady)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setPlayWhenReady(boolean)">Player</a></code></span></div>
<div class="block">Sets whether playback should proceed when <a href="../../Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> == <a href="../../Player.html#STATE_READY"><code>Player.STATE_READY</code></a>.

 <p>If the player is already in the ready state then this method pauses and resumes playback.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playWhenReady</code> - Whether playback should proceed when ready.</dd>
</dl>
</li>
</ul>
<a id="getPlayWhenReady()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlayWhenReady</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;getPlayWhenReady()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getPlayWhenReady()">Player</a></code></span></div>
<div class="block">Whether playback will proceed when <a href="../../Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> == <a href="../../Player.html#STATE_READY"><code>Player.STATE_READY</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether playback will proceed when ready.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onPlayWhenReadyChanged(boolean,int)"><code>Player.Listener.onPlayWhenReadyChanged(boolean, int)</code></a></dd>
</dl>
</li>
</ul>
<a id="seekTo(int,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekTo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;seekTo&#8203;(int&nbsp;windowIndex,
                   long&nbsp;positionMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#seekTo(int,long)">Player</a></code></span></div>
<div class="block">Seeks to a position specified in milliseconds in the specified window.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>windowIndex</code> - The index of the window.</dd>
<dd><code>positionMs</code> - The seek position in the specified window, or <a href="../../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to seek to
     the window's default position.</dd>
</dl>
</li>
</ul>
<a id="setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlaybackParameters</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setPlaybackParameters&#8203;(<a href="../../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">Player</a></code></span></div>
<div class="block">Attempts to set the playback parameters. Passing <a href="../../PlaybackParameters.html#DEFAULT"><code>PlaybackParameters.DEFAULT</code></a> resets the
 player to the default, which means there is no speed or pitch adjustment.

 <p>Playback parameters changes may cause the player to buffer. <a href="../../Player.Listener.html#onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.Listener.onPlaybackParametersChanged(PlaybackParameters)</code></a> will be called whenever the currently
 active playback parameters change.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackParameters</code> - The playback parameters.</dd>
</dl>
</li>
</ul>
<a id="getPlaybackParameters()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlaybackParameters</h4>
<pre class="methodSignature">public&nbsp;<a href="../../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;getPlaybackParameters()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getPlaybackParameters()">Player</a></code></span></div>
<div class="block">Returns the currently active playback parameters.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.Listener.onPlaybackParametersChanged(PlaybackParameters)</code></a></dd>
</dl>
</li>
</ul>
<a id="stop(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
</li>
</ul>
<a id="release()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;release()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#release()">Player</a></code></span></div>
<div class="block">Releases the player. This method must be called when the player is no longer required. The
 player must not be used after calling this method.</div>
</li>
</ul>
<a id="setRepeatMode(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRepeatMode</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setRepeatMode&#8203;(<a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">@RepeatMode</a>
                          int&nbsp;repeatMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setRepeatMode(int)">Player</a></code></span></div>
<div class="block">Sets the <a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>repeatMode</code> - The repeat mode.</dd>
</dl>
</li>
</ul>
<a id="getRepeatMode()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRepeatMode</h4>
<pre class="methodSignature"><a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">@RepeatMode</a>
public&nbsp;int&nbsp;getRepeatMode()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getRepeatMode()">Player</a></code></span></div>
<div class="block">Returns the current <a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> used for playback.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current repeat mode.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onRepeatModeChanged(int)"><code>Player.Listener.onRepeatModeChanged(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="setShuffleModeEnabled(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setShuffleModeEnabled</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setShuffleModeEnabled&#8203;(boolean&nbsp;shuffleModeEnabled)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setShuffleModeEnabled(boolean)">Player</a></code></span></div>
<div class="block">Sets whether shuffling of windows is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuffleModeEnabled</code> - Whether shuffling is enabled.</dd>
</dl>
</li>
</ul>
<a id="getShuffleModeEnabled()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getShuffleModeEnabled</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;getShuffleModeEnabled()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getShuffleModeEnabled()">Player</a></code></span></div>
<div class="block">Returns whether shuffling of windows is enabled.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onShuffleModeEnabledChanged(boolean)"><code>Player.Listener.onShuffleModeEnabledChanged(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a id="getCurrentTrackSelections()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentTrackSelections</h4>
<pre class="methodSignature">public&nbsp;<a href="../../trackselection/TrackSelectionArray.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionArray</a>&nbsp;getCurrentTrackSelections()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentTrackSelections()">Player</a></code></span></div>
<div class="block">Returns the current track selections.

 <p>A concrete implementation may include null elements if it has a fixed number of renderer
 components, wishes to report a TrackSelection for each of them, and has one or more renderer
 components that is not assigned any selected tracks.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray,com.google.android.exoplayer2.trackselection.TrackSelectionArray)"><code>Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)</code></a></dd>
</dl>
</li>
</ul>
<a id="getCurrentTrackGroups()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentTrackGroups</h4>
<pre class="methodSignature">public&nbsp;<a href="../../source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&nbsp;getCurrentTrackGroups()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentTrackGroups()">Player</a></code></span></div>
<div class="block">Returns the available track groups.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray,com.google.android.exoplayer2.trackselection.TrackSelectionArray)"><code>Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)</code></a></dd>
</dl>
</li>
</ul>
<a id="getCurrentStaticMetadata()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentStaticMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="../../metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a>&gt;&nbsp;getCurrentStaticMetadata()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentStaticMetadata()">Player</a></code></span></div>
<div class="block">Returns the current static metadata for the track selections.

 <p>The returned <code>metadataList</code> is an immutable list of <a href="../../metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a> instances, where
 the elements correspond to the <a href="../../Player.html#getCurrentTrackSelections()"><code>current track selections</code></a>,
 or an empty list if there are no track selections or the selected tracks contain no static
 metadata.

 <p>This metadata is considered static in that it comes from the tracks' declared Formats,
 rather than being timed (or dynamic) metadata, which is represented within a metadata track.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onStaticMetadataChanged(java.util.List)"><code>Player.Listener.onStaticMetadataChanged(List)</code></a></dd>
</dl>
</li>
</ul>
<a id="getMediaMetadata()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMediaMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;getMediaMetadata()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getMediaMetadata()">Player</a></code></span></div>
<div class="block">Returns the current combined <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>, or <a href="../../MediaMetadata.html#EMPTY"><code>MediaMetadata.EMPTY</code></a> if not
 supported.

 <p>This <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> is a combination of the <a href="../../MediaItem.html#mediaMetadata"><code>MediaItem.mediaMetadata</code></a> and the
 static and dynamic metadata sourced from <a href="../../Player.Listener.html#onStaticMetadataChanged(java.util.List)"><code>Player.Listener.onStaticMetadataChanged(List)</code></a> and
 <a href="../../metadata/MetadataOutput.html#onMetadata(com.google.android.exoplayer2.metadata.Metadata)"><code>MetadataOutput.onMetadata(Metadata)</code></a>.</div>
</li>
</ul>
<a id="getCurrentTimeline()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentTimeline</h4>
<pre class="methodSignature">public&nbsp;<a href="../../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;getCurrentTimeline()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentTimeline()">Player</a></code></span></div>
<div class="block">Returns the current <a href="../../Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>. Never null, but may be empty.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onTimelineChanged(com.google.android.exoplayer2.Timeline,int)"><code>Player.Listener.onTimelineChanged(Timeline, int)</code></a></dd>
</dl>
</li>
</ul>
<a id="getCurrentPeriodIndex()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentPeriodIndex</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentPeriodIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentPeriodIndex()">Player</a></code></span></div>
<div class="block">Returns the index of the period currently being played.</div>
</li>
</ul>
<a id="getCurrentWindowIndex()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentWindowIndex</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentWindowIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentWindowIndex()">Player</a></code></span></div>
<div class="block">Returns the index of the current <a href="../../Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>window</code></a> in the <a href="../../Player.html#getCurrentTimeline()"><code>timeline</code></a>, or the prospective window index if the <a href="../../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is empty.</div>
</li>
</ul>
<a id="getDuration()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDuration</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getDuration()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getDuration()">Player</a></code></span></div>
<div class="block">Returns the duration of the current content window or ad in milliseconds, or <a href="../../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if the duration is not known.</div>
</li>
</ul>
<a id="getCurrentPosition()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentPosition</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getCurrentPosition()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentPosition()">Player</a></code></span></div>
<div class="block">Returns the playback position in the current content window or ad, in milliseconds, or the
 prospective position in milliseconds if the <a href="../../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is
 empty.</div>
</li>
</ul>
<a id="getBufferedPosition()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBufferedPosition</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getBufferedPosition()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getBufferedPosition()">Player</a></code></span></div>
<div class="block">Returns an estimate of the position in the current content window or ad up to which data is
 buffered, in milliseconds.</div>
</li>
</ul>
<a id="getTotalBufferedDuration()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalBufferedDuration</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getTotalBufferedDuration()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getTotalBufferedDuration()">Player</a></code></span></div>
<div class="block">Returns an estimate of the total buffered duration from the current position, in milliseconds.
 This includes pre-buffered data for subsequent ads and windows.</div>
</li>
</ul>
<a id="isPlayingAd()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPlayingAd</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isPlayingAd()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#isPlayingAd()">Player</a></code></span></div>
<div class="block">Returns whether the player is currently playing an ad.</div>
</li>
</ul>
<a id="getCurrentAdGroupIndex()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentAdGroupIndex</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentAdGroupIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentAdGroupIndex()">Player</a></code></span></div>
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad group in the period
 currently being played. Returns <a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.</div>
</li>
</ul>
<a id="getCurrentAdIndexInAdGroup()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentAdIndexInAdGroup</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentAdIndexInAdGroup()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentAdIndexInAdGroup()">Player</a></code></span></div>
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad in its ad group. Returns
 <a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.</div>
</li>
</ul>
<a id="isLoading()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLoading</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isLoading()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#isLoading()">Player</a></code></span></div>
<div class="block">Whether the player is currently loading the source.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the player is currently loading the source.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onIsLoadingChanged(boolean)"><code>Player.Listener.onIsLoadingChanged(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a id="getContentPosition()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContentPosition</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getContentPosition()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getContentPosition()">Player</a></code></span></div>
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns the content position that will be
 played once all ads in the ad group have finished playing, in milliseconds. If there is no ad
 playing, the returned position is the same as that returned by <a href="../../Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</div>
</li>
</ul>
<a id="getContentBufferedPosition()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContentBufferedPosition</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getContentBufferedPosition()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getContentBufferedPosition()">Player</a></code></span></div>
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns an estimate of the content position in
 the current content window up to which data is buffered, in milliseconds. If there is no ad
 playing, the returned position is the same as that returned by <a href="../../Player.html#getBufferedPosition()"><code>Player.getBufferedPosition()</code></a>.</div>
</li>
</ul>
<a id="getAudioAttributes()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAudioAttributes</h4>
<pre class="methodSignature">public&nbsp;<a href="../../audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;getAudioAttributes()</pre>
<div class="block">This method is not supported and returns <a href="../../audio/AudioAttributes.html#DEFAULT"><code>AudioAttributes.DEFAULT</code></a>.</div>
</li>
</ul>
<a id="setVolume(float)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVolume</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setVolume&#8203;(float&nbsp;audioVolume)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioVolume</code> - Linear output gain to apply to all audio channels.</dd>
</dl>
</li>
</ul>
<a id="getVolume()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVolume</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getVolume()</pre>
<div class="block">This method is not supported and returns 1.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The linear gain applied to all audio channels.</dd>
</dl>
</li>
</ul>
<a id="clearVideoSurface()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearVideoSurface</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearVideoSurface()</pre>
<div class="block">This method is not supported and does nothing.</div>
</li>
</ul>
<a id="clearVideoSurface(android.view.Surface)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearVideoSurface</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearVideoSurface&#8203;(@Nullable
                              <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;surface)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surface</code> - The surface to clear.</dd>
</dl>
</li>
</ul>
<a id="setVideoSurface(android.view.Surface)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVideoSurface</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setVideoSurface&#8203;(@Nullable
                            <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;surface)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surface</code> - The <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a>.</dd>
</dl>
</li>
</ul>
<a id="setVideoSurfaceHolder(android.view.SurfaceHolder)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVideoSurfaceHolder</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setVideoSurfaceHolder&#8203;(@Nullable
                                  <a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceHolder</a>&nbsp;surfaceHolder)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceHolder</code> - The surface holder.</dd>
</dl>
</li>
</ul>
<a id="clearVideoSurfaceHolder(android.view.SurfaceHolder)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearVideoSurfaceHolder</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearVideoSurfaceHolder&#8203;(@Nullable
                                    <a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceHolder</a>&nbsp;surfaceHolder)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceHolder</code> - The surface holder to clear.</dd>
</dl>
</li>
</ul>
<a id="setVideoSurfaceView(android.view.SurfaceView)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVideoSurfaceView</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setVideoSurfaceView&#8203;(@Nullable
                                <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceView</a>&nbsp;surfaceView)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceView</code> - The surface view.</dd>
</dl>
</li>
</ul>
<a id="clearVideoSurfaceView(android.view.SurfaceView)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearVideoSurfaceView</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearVideoSurfaceView&#8203;(@Nullable
                                  <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceView</a>&nbsp;surfaceView)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceView</code> - The texture view to clear.</dd>
</dl>
</li>
</ul>
<a id="setVideoTextureView(android.view.TextureView)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVideoTextureView</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setVideoTextureView&#8203;(@Nullable
                                <a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top">TextureView</a>&nbsp;textureView)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>textureView</code> - The texture view.</dd>
</dl>
</li>
</ul>
<a id="clearVideoTextureView(android.view.TextureView)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearVideoTextureView</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearVideoTextureView&#8203;(@Nullable
                                  <a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top">TextureView</a>&nbsp;textureView)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>textureView</code> - The texture view to clear.</dd>
</dl>
</li>
</ul>
<a id="getVideoSize()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVideoSize</h4>
<pre class="methodSignature">public&nbsp;<a href="../../video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a>&nbsp;getVideoSize()</pre>
<div class="block">This method is not supported and returns <a href="../../video/VideoSize.html#UNKNOWN"><code>VideoSize.UNKNOWN</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onVideoSizeChanged(com.google.android.exoplayer2.video.VideoSize)"><code>Player.Listener.onVideoSizeChanged(VideoSize)</code></a></dd>
</dl>
</li>
</ul>
<a id="getCurrentCues()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentCues</h4>
<pre class="methodSignature">public&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="../../text/Cue.html" title="class in com.google.android.exoplayer2.text">Cue</a>&gt;&nbsp;getCurrentCues()</pre>
<div class="block">This method is not supported and returns an empty list.</div>
</li>
</ul>
<a id="getDeviceInfo()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeviceInfo</h4>
<pre class="methodSignature">public&nbsp;<a href="../../device/DeviceInfo.html" title="class in com.google.android.exoplayer2.device">DeviceInfo</a>&nbsp;getDeviceInfo()</pre>
<div class="block">This method is not supported and always returns <a href="../../device/DeviceInfo.html#UNKNOWN"><code>DeviceInfo.UNKNOWN</code></a>.</div>
</li>
</ul>
<a id="getDeviceVolume()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeviceVolume</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getDeviceVolume()</pre>
<div class="block">This method is not supported and always returns <code>0</code>.</div>
</li>
</ul>
<a id="isDeviceMuted()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDeviceMuted</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isDeviceMuted()</pre>
<div class="block">This method is not supported and always returns <code>false</code>.</div>
</li>
</ul>
<a id="setDeviceVolume(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDeviceVolume</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDeviceVolume&#8203;(int&nbsp;volume)</pre>
<div class="block">This method is not supported and does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>volume</code> - The volume to set.</dd>
</dl>
</li>
</ul>
<a id="increaseDeviceVolume()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>increaseDeviceVolume</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;increaseDeviceVolume()</pre>
<div class="block">This method is not supported and does nothing.</div>
</li>
</ul>
<a id="decreaseDeviceVolume()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decreaseDeviceVolume</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;decreaseDeviceVolume()</pre>
<div class="block">This method is not supported and does nothing.</div>
</li>
</ul>
<a id="setDeviceMuted(boolean)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setDeviceMuted</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDeviceMuted&#8203;(boolean&nbsp;muted)</pre>
<div class="block">This method is not supported and does nothing.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>
